<#if ctrl.render??>
    ${ctrl.render.code}
<#else>
<split id="${ctrl.getCodeName()?lower_case}" class='app-tree-exp-bar' v-model="split" mode="horizontal" @on-move-end="onSplitChange.apply(_self, arguments)">
    <div class="app-tree-exp-bar-left<#if ctrl.isShowTitleBar()> show-title-bar</#if><#if ctrl.isEnableSearch()> enable-search</#if>" slot='left'>
<#if ctrl.isShowTitleBar()>
        <div class='tree-exp-bar-header'>
                <div class="tree-exp-bar-title"><#if ctrl.getTitle() == ''>{{ $t('app.treeExpBar.title') }}<#else>${ctrl.getTitle()}</#if></div>
                <#if ctrl.getPSControls()??>
                <#assign controls = ctrl.getPSControls()/>
                <#list controls as singleControl>
                <#if singleControl.getControlType() == "TOOLBAR">
                ${P.getCtrlCode(singleControl, 'CONTROL.html').code}
                </#if>
                </#list>
                </#if>
        </div>
</#if>
<#if ctrl.isEnableSearch()>
        <div class='search-content'>
            <i-input :search="true" @on-change="($event) => { this.srfnodefilter = $event.target.value; }" @on-search="onSearch($event)"/>
        </div>
</#if>
        <div class='tree-exp-content'>
            <#if ctrl.getPSDETree()??><#t>
            <#assign tree = ctrl.getPSDETree()/>
            <@ibizindent blank=12>
            ${P.getCtrlCode(tree, 'CONTROL.html').code}
            </@ibizindent>
            </#if>
        </div>
    </div>
    <div class="app-tree-exp-bar-right" slot='right'>
        <component 
            v-if="selection.view && !Object.is(this.selection.view.viewname, '')" 
            :is="selection.view.viewname"
            class="viewcontainer2"
            :viewDefaultUsage="false"
            :viewdata="JSON.stringify(selection.context)"
            :viewparam="JSON.stringify(selection.viewparam)"
            @viewdataschange="onViewDatasChange.apply(_self, arguments)"
            @viewdatasactivated="viewDatasActivated.apply(_self, arguments)"
            @drdatasaved="onDrViewDatasChange.apply(_self, arguments)"
            @drdatasremove="onDrViewDatasChange.apply(_self, arguments)"
            @viewload="onViewLoad.apply(_self, arguments)">
        </component>
    </div>
</split>
</#if>